const config = {
    type: Phaser.AUTO,
    width: 200,
    height: 200,
    scene: {
        preload: preload,
        create: create,
        update: update
    }
};

const game = new Phaser.Game(config);

function preload() {
    // 加载精灵表，假设图片名为 spriteSheet.png，单帧宽高32x32
    this.load.spritesheet('animalSheet', 'spriteSheet.png', {
        frameWidth: 32,
        frameHeight: 32
    });
}

function create() {
    // 创建精灵实例，初始位置(100, 100)
    this.animal = this.add.sprite(100, 100, 'animalSheet');

    // 定义“第一行小动物”的动画（0 - 3 帧）
    this.anims.create({
        key: 'row1Anim',
        frames: this.anims.generateFrameNumbers('animalSheet', { start: 0, end: 3 }),
        frameRate: 5, // 每秒播放5帧
        repeat: -1 // 无限循环
    });

    // 定义“第二行小动物”的动画（4 - 7 帧）
    this.anims.create({
        key: 'row2Anim',
        frames: this.anims.generateFrameNumbers('animalSheet', { start: 4, end: 7 }),
        frameRate: 5,
        repeat: -1
    });

    // 定义“第三行小动物”的动画（8 - 11 帧）
    this.anims.create({
        key: 'row3Anim',
        frames: this.anims.generateFrameNumbers('animalSheet', { start: 8, end: 11 }),
        frameRate: 5,
        repeat: -1
    });

    // 初始播放第一行动画
    this.animal.play('row1Anim');

    // 这里可以添加键盘或其他交互，切换不同行的动画
    // 示例：按空格键切换动画
    this.input.keyboard.on('keydown-SPACE', () => {
        if (this.animal.anims.getName() === 'row1Anim') {
            this.animal.play('row2Anim');
        } else if (this.animal.anims.getName() === 'row2Anim') {
            this.animal.play('row3Anim');
        } else {
            this.animal.play('row1Anim');
        }
    });
}

function update() {
    // 若有持续更新逻辑可写在这里，比如随时间自动切换动画等
    // 示例：每3秒自动切换一次动画
    if (this.time.now % 3000 < 16) {
        if (this.animal.anims.getName() === 'row1Anim') {
            this.animal.play('row2Anim');
        } else if (this.animal.anims.getName() === 'row2Anim') {
            this.animal.play('row3Anim');
        } else {
            this.animal.play('row1Anim');
        }
    }
}